// 这里用于封装flyio的请求实例(加一些配置, 拦截器+baseURL)

// 导入了支持小程序的flyio
import FlyIO from 'flyio/dist/npm/wx'

// 请求实例
const http = new FlyIO()

// 加一些配置
http.config.baseURL = 'https://www.uinav.com/api/public/v1'
// 设置超时时间(服务器性能偏差)
http.config.timeout = 30000

// 拦截器
// 请求拦截器(这次请求到服务器之前执行)
http.interceptors.request.use((request) => {
  // 加载中效果..
  uni.showLoading({
    title: '加载中...',
    mask: true,
  })

  // 统一添加请求头
  // 判断request.url
  console.log('请求的url是: ', request.url)
  if (request.url.includes('/my')) {
    // 添加请求头
    request.headers.Authorization = uni.getStorageSync('token')
  }

  return request
})

// 响应拦截器(请求结果到浏览器之前执行)
http.interceptors.response.use(
  function (response) {
    uni.hideLoading()

    return response.data //只返回业务数据部分
  },
  function (err) {
    uni.hideLoading()

    // 希望将来响应失败时, 希望走catch 返回失败的promise
    return Promise.reject(err)
  }
)

// 导出
export default http
